//
//  HMBaseTableViewController.swift
//  Weibo
//
//  Created by xiongminghua on 16/7/18.
//  Copyright © 2016年 熊明华. All rights reserved.
//

// 显示是否登录的界面的一个父类控制器

import UIKit

// 6.遵守代理协议, 没有实现代理方法，也会报错
class HMBaseTableViewController: UITableViewController {
    
    // 记录用户是否登录
    let userLogin = HMUserAccountViewModel.sharedUserAccountViewModel.isLogin

    // 通过这个方法，我们可以实现同一个控制器显示不同的界面
    override func loadView() {
        
        if userLogin {
            
            // 登录成功，就显示登录后的界面
            super.loadView()
            
        }else{
            // 没有登录成功，显示未登录界面
            self.view = visitorView
            
            // 5.设置代理属性 , 没有遵守代理协议会报错
            visitorView.delegate = self
            // 因为多态
            if self is HMHomeTableViewController {
                // 开启动画
                visitorView.setupAnimation()
                
            }else if self is HMMessageTableViewController {
                
                visitorView.setupVisitorInfo("visitordiscover_image_message", message: "登录后，别人评论你的微博，发给你的消息，都会在这里收到通知")
                
            }else if self is HMDiscoverTableViewController {
                
                visitorView.setupVisitorInfo("visitordiscover_image_message", message: "登录后，最新、最热微博尽在掌握，不再会与实事潮流擦肩而过")
                
            }else if self is HMProfileTableViewController {
                
                visitorView.setupVisitorInfo("visitordiscover_image_profile", message: "登录后，你的微博、相册、个人资料会显示在这里，展示给别人")
                
            }
            
            // 设置未登录界面导航栏上的按钮，4个控制器都有
            self.navigationItem.leftBarButtonItem = UIBarButtonItem(title: "注册", style: UIBarButtonItemStyle.Plain, target:self, action: "visitorViewDidRegister")
            
            self.navigationItem.rightBarButtonItem = UIBarButtonItem(title: "登录", style: UIBarButtonItemStyle.Plain, target: self, action: "visitorViewDidLogin")
            
        }
    
    }
    
    
    // MARK: - 懒加载访客视图
    lazy var visitorView: HMVisitorView = HMVisitorView()
    
}


// 设置类的延展 专门管理代理方法
// 6.遵守代理协议, 没有实现代理方法，也会报错
extension HMBaseTableViewController: HMVisitorViewDelegate {
    
    // MARK: - 代理方法
    // 7.实现代理方法
    
    func visitorViewDidRegister() {
        
        print("点击注册")
    }
    
    func visitorViewDidLogin() {
        
        // 点击登录跳转到授权控制器
        let oauthVC = HMOAuthViewController()
        // 将授权控制器添加到导航控制器中, 在进行跳转
        self.presentViewController(UINavigationController(rootViewController: oauthVC), animated: true, completion: nil)
        
    }
    
}

